// 服务器配置信息
const server = {
	// privateKey:"", // 秘钥
	host: '192.168.20.39', // 服务器ip
	port: '22', // 端口一般默认22
	username: 'root', // 用户名
	password: 'root1234', // 密码
	serverPath: '/xcProduct/dbsyncer/', // 服务器路径（结尾加/）
	packageName: 'html', // 上传到服务器的位置
	localPath: './html/' // 本地打包文件路径
}
// 引入scp2
const client = require('scp2');
const _ora = require('ora');
const spinner = _ora('正在发布到测试服务器...');

// 创建shell脚本
const Client = require('ssh2').Client;
const conn = new Client();

console.log('正在建立连接');
conn.on('ready', function() {
	console.log('已连接')
	if (!server.packageName) {
		console.log('连接已关闭');
		conn.end()
		return false;
	}
	// 这里我拼接了放置服务器资源目录的位置 ，首选通过rm -rf删除了这个目录下的文件
	conn.exec('rm -rf ' + server.serverPath + server.packageName + '/*', function(err, stream) {
		console.log('删除服务器文件');
		stream.on('close', function(code, signal) {
			console.log('开始上传')
			spinner.start();
			client.scp(server.localPath, {
				"host": server.host,
				"port": server.port,
				"username": server.username,
				"password": server.password,
				"path": server.serverPath + server.packageName
			}, err => {
				spinner.stop();
				if (!err) {
					console.log("项目发布完毕，地址：http://192.168.20.47:2001/#/")
				} else {
					console.log("err", err);
				}
				conn.end(); // 结束命令
			})
		}).on('data', function(data) {
			console.log('STDOUT: ' + data);
		}).stderr.on('data', function(data) {
			console.log('STDERR: ' + data);
		});
	})
}).connect({
	host: server.host,
	port: server.port,
	username: server.username,
	password: server.password
});
